Graphics display systems, such as cellular telephones, typically employ a graphics controller as an interface between one or more providers of image data and a graphics display device such as an LCD panel or panels. In a cellular telephone, the providers of image data are typically a host processor (CPU) and a camera (any and all such providers hereinafter being generally considered a “host”).
The image data are transmitted from a host to the graphics controller where the data are stored in a memory. The image data typically correspond to different “windows” for display by the display device. For example, one host, such as the CPU, may provide a “main window” for displaying associated main window image data and another host, such as the camera, may provide a “sub-window” for displaying associated sub-window image data that overlay the main window data. An artifact known as a “sprite” may also be provided. A typical example of a “sprite” is the cursor provided by the CPU. The “sprite” typically overlays both the main and sub-window image data.
The image data corresponding to the windows are typically fetched from the memory and transmitted or clocked through respective FIFO (“first-in-first out”) buffers or “display pipes” to a selecting circuit. The selecting circuit selects the image data, on a pixel-by-pixel basis, from one of the pipes for further transmission to the display device. For example, for a pixel located at a particular row and column on the display falling within a sub-window that overlays a main window, but which is not overlaid by a sprite, the selecting circuit selects the image data at the end of the display pipe for the sub-window and does not select the image data at the end of the display pipes corresponding to either the main window or the sprite.
The display pipes provide a buffering function that is advantageous because the rate at which image data may be fetched from the memory is typically higher than the rate at which the image data are clocked out to the display device. From this it can be seen that the memory may fill the display pipe relatively quickly, and while the display pipe is being emptied relatively slowly, the memory is freed for alternative uses. A “near-empty” signal is generated when the display pipe is nearly empty, which is used to trigger the memory accesses needed to refill the display pipe. It may be noted that the rate at which data are transmitted through the display pipe is often referred to as the “bandwidth” of the display pipe. The concept applies to other channels of data transmission as well, and can even apply to analog transmission channels.
The rate at which image data are introduced into or fill the display pipe is determined by the (clock) rate at which memory may be accessed (referred to as “MCLK”), and the rate at which the image data are clocked out of the display pipe is determined by the rate at which the graphics display device can accept the image data (referred to as “PCLK”).
The clock rates MCLK and PCLK are distinguished from the frequency of the near-empty signal used for triggering memory accesses or fetches. Where the image data corresponding to a particular display pipe are required relatively infrequently, the near-empty signal is likewise generated relatively infrequently. Where there are multiple display pipes or paths, the display pipes are typically not selected with the same frequency, and are therefore not emptied with the same frequency, even though they are emptied at the same rate. The bandwidth of a given one of the display pipes is therefore a function of both the frequency of occurrence of the near-empty signal and the rate at which data are output from the pipe. Particularly, the bandwidth is proportional to the product of this frequency and this rate.
The clock rate for memory fetches must at least be high enough to keep up with the requirements of all the display pipes; otherwise, one or more display pipes will be starved of data. This starvation will result in the appearance of an undesirable artifact on the display. To ensure that starvation does not occur, MCLK is set high enough to service all of the pipes under the worst case condition that all of the pipes require refilling at the same time.
In many graphics display systems, it is also desirable to decrease power consumption. This is particularly so in portable, battery powered systems such as cellular telephones. And in general, power consumption is greater, the greater the clock rate.
Accordingly, there is a need for a method and apparatus for adaptively adjusting the bandwidth of a data transmission channel having multiple paths that provides for optimizing the bandwidth to reduce power consumption.